草庐IT

android - GCM 的注册 ID 重复

全部标签

ruby - 在 ruby​​/ActiveRecord 中生成类似 Instagram 或 Youtube 的不可猜测的字符串 ID

在创建给定ActiveRecord模型对象的实例后,我需要生成一个简短的(6-8个字符)唯一字符串用作URL中的标识符,采用Instagram照片URL的样式(如http://instagram.com/p/P541i4ErdL/,它我只是争先恐后地成为404)或Youtube的视频网址(如http://www.youtube.com/watch?v=oHg5SJYRHA0)。执行此操作的最佳方法是什么?最简单的是createarandomstring重复直到它是唯一的?有没有一种方法可以对整数ID进行散列/洗牌,使用户无法通过更改一个字符来破解URL(就像我对上面的404'sInst

ruby-on-rails - 如何验证关联的模型 ID?

我有一个学生和一个类(class)模型。学生属于类(class),类(class)有很多学生。classStudenttruevalidates_associated:courseendclassCoursetruevalidates:courseCode,:courseYr,:uniqueness=>{:message=>"Cannotrepeatthecode"}has_many:studentsend在用于创建学生记录的表单中,我让用户输入类(class)ID。但我不知道如何验证用户输入的course_id。学生模型验证不会产生错误,即使我键入不存在的类(class)ID。如何让

ruby-on-rails - 未知属性 : user_id

我在执行current_user.stories.build时遇到错误unknownattribute:user_idclassUser架构.rbcreate_table"stories",:force=>truedo|t|t.string"responsible"t.string"descr"t.string"state"t.datetime"created_at",:null=>falset.datetime"updated_at",:null=>falseendcreate_table"users",:force=>truedo|t|t.string"email"t.string

ruby-on-rails - 当我在同一页面中输入登录和注册表单时如何显示设计错误消息

我正在使用devise并将登录和注册表单放在同一页面中,现在当我在注册表单上输入无效的登录详细信息或未填写所需的输入数据时。如果我尝试注册,我将重定向到/users页面,如果我尝试登录,我将重定向到/users/sign_in...我想留在同一个页面并在同一个页面中显示错误。我该怎么做?非常感谢,我需要一个快速的帮助:) 最佳答案 我前段时间在StackOverFlow上找到了这个问题的解决方案。这是对我有用的#Inapplication.html.erb#Newcode(allowforflashelementstobearray

ruby - 从 Ruby 数组中删除顺序重复项

假设我有以下数组,我想去掉连续的重复项:arr=[1,1,1,4,4,4,3,3,3,3,5,5,5,1,1,1]我想得到以下信息:=>[1,4,3,5,1]如果有比我的解决方案(或其变体)更简单、更高效的东西,那就太好了:(arr+[nil]).each_cons(2).collect{|i|i[0]!=i[1]?i[0]:nil}.compact或(arr+[nil]).each_cons(2).each_with_object([]){|i,memo|memo编辑:看起来@ArupRakshit下面的解决方案非常简单。我仍在寻找比我的解决方案更高效的方法。编辑:我将在响应出现时对

ruby-on-rails - 基于不同于 ID 的东西的 Rails Route

所以目前当我想查看用户个人资料时,我有类似/users/1/的东西。我如何通过routes.rb将其更改为/user/chiggins/其中chiggins是唯一的用户名? 最佳答案 你需要重写User模型中的to_param方法:classUserdefto_paramusernameendend然后rails将自动使用它进行路由。参见http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-i-to_param

ruby-on-rails - "omniauth-twitter"电子邮件 ID 未从 ruby​​ on rails 中的 Twitter 获取

我正在使用omniauth-twittergem在我的Rails应用程序中启用Twitter登录。这是我的代码...gem文件-gem'omniauth','~>1.1.1'gem'omniauth-twitter'路线.rb-match'/auth/twitter/callback',to:'users#twitter_login'match'auth/failure',to:'static_pages#home'用户Controller.rb-deftwitter_loginauth=request.env['omniauth.auth']authentication=Authen

ruby-on-rails - 在 Rails 中使用没有父 ID 的嵌套资源

我有一个名为Imprintables的类,其中包含嵌套资源Styles、Brands、Colors和尺寸。我目前在我的路线文件中有这个:resources:imprintablesdoresources:styles,:brands,:colorsresources:sizesdocollectiondopost'update_size_order'endendend产生这样的路线:/imprintables/:imprintable_id/brands/imprintables/:imprintable_id/colors/imprintables/:imprintable_id/s

ruby 通过重复字符或空格拆分字符串

我如何分割这个字符串。"68855588866887777"=>["6","88","555","8","88","66","88","7777"]我试过了,但是没用。ruby-1.8.7-p334:020>"111133".split(/(\d)\1+/)=>["","1","","3"] 最佳答案 split将只使用它匹配的任何内容作为分隔符,并将其从相关字符串中删除。您要找的是scan:str="68855588866887777"str.scan(/((\d)\2*)/).map(&:first)#=>["6","88","

ruby-on-rails - 设计:注册失败时重定向?

我正在尝试重定向未通过注册表单的用户(例如,他们输入的用户名已被占用,他们将字段留空等...)我为登录表单失败的用户设置了自定义失败,代码如下:classCustomFailure但是,我一直在研究如何针对注册失败进行设置。理想情况下,我只想将它们重定向回/到root_path,有什么想法吗?谢谢! 最佳答案 您可能需要子类化Devise::RegistrationsController并覆盖创建操作。只需从here复制创建方法即可并在保存失败时修改重定向。#app/controllers/registrations_control